package wiz.client.activities.playhand;

import com.google.gwt.event.dom.client.HasClickHandlers;
import com.google.gwt.user.client.TakesValue;
import com.google.gwt.user.client.ui.HasEnabled;
import com.google.gwt.user.client.ui.HasText;
import com.google.gwt.user.client.ui.IsWidget;

public interface PlayHandView extends IsWidget {

	public NumberValueSelector getRoundSizeSelector();
	public WizPlayerHandState createAndAddPlayerHandState();

	public abstract HasText getRoundValidationText();
	public abstract HasClickHandlers getDoneRoundButtonClickHandlers();
	public abstract HasEnabled getDoneRoundButtonEnabled();
	public abstract HasText getBidValidationText();
	public abstract HasClickHandlers getStartRoundButtonClickHandlers();
	public abstract HasEnabled getStartRoundButtonVisibility();
	public void removePlayerUI(int i);
	


	public abstract void setBidValidationVisible(boolean visible);
	public void setScoreValidationVisible(boolean visible);


	public abstract HasText getTotalBidText();


	public static class WizPlayerHandState {
		HasText fPlayerName;
		NumberValueSelector fBidSelector;
		NumberValueSelector fMadeSelector;
		private HasText fPlayerScore;
		private TakesValue<Boolean> fMadeBid;
		
		
		
		public WizPlayerHandState(HasText playerName, HasText playerScore, NumberValueSelector bidSelector, NumberValueSelector madeSelector, TakesValue<Boolean> madeBid) {
			super();
			fPlayerName = playerName;
			fBidSelector = bidSelector;
			fMadeSelector = madeSelector;
			fPlayerScore = playerScore;
			fMadeBid = madeBid;
		}
		
		
		public HasText getPlayer() {
			return fPlayerName;
		}
		public void setPlayer(HasText playerName) {
			fPlayerName = playerName;
		}
		public NumberValueSelector getBidSelector() {
			return fBidSelector;
		}
		public void setBidSelector(NumberValueSelector bidSelector) {
			fBidSelector = bidSelector;
		}
		public NumberValueSelector getMadeSelector() {
			return fMadeSelector;
		}
		public void setMadeSelector(NumberValueSelector madeSelector) {
			fMadeSelector = madeSelector;
		}
		public HasText getPlayerScore() {
			return fPlayerScore;
		}
		public TakesValue<Boolean> getMadeBid() {
			return fMadeBid;
		}
	}







	
	
}
